/*
 * SinCos.cpp
 *
 *  Created on: 8 Jun 2012
 *
 *  BogDog GLES 2.0 3D Engine for Raspberry Pi
 *	Copyright (C) 2012  Richard e Collins
 *
 *	This program is free software: you can redistribute it and/or modify
 *	it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *	(at your option) any later version.
 *
 *	This program is distributed in the hope that it will be useful,
 *	but WITHOUT ANY WARRANTY; without even the implied warranty of
 *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *	GNU General Public License for more details.
 *
 * 	You should have received a copy of the GNU General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <stdio.h>
#include <math.h>

#include "./maths/SinCos.h"

namespace BogDog
{


// ---------------------------------------------------------------------------
static float sincos[5120] = {
		0.000000f,0.001534f,0.003068f,0.004602f,0.006136f,0.007670f,0.009204f,0.010738f,0.012272f,0.013805f,0.015339f,0.016873f,0.018407f,0.019940f,0.021474f,0.023008f,0.024541f,0.026075f,0.027608f,0.029142f,0.030675f,0.032208f,0.033741f,0.035274f,0.036807f,0.038340f,0.039873f,0.041406f,0.042938f,0.044471f,0.046003f,0.047535f,0.049068f,0.050600f,0.052132f,0.053664f,0.055195f,0.056727f,0.058258f,0.059790f,0.061321f,0.062852f,0.064383f,0.065913f,0.067444f,0.068974f,0.070505f,0.072035f,0.073565f,0.075094f,0.076624f,0.078153f,0.079682f,0.081211f,0.082740f,0.084269f,0.085797f,0.087326f,0.088854f,0.090381f,0.091909f,0.093436f,0.094963f,0.096490f,0.098017f,0.099544f,0.101070f,0.102596f,0.104122f,0.105647f,0.107172f,0.108697f,0.110222f,0.111747f,0.113271f,0.114795f,0.116319f,0.117842f,0.119365f,0.120888f,0.122411f,0.123933f,0.125455f,0.126977f,0.128498f,0.130019f,0.131540f,0.133061f,0.134581f,0.136101f,0.137620f,0.139139f,0.140658f,0.142177f,0.143695f,0.145213f,0.146730f,0.148248f,0.149765f,0.151281f,0.152797f,0.154313f,0.155828f,0.157343f,0.158858f,0.160372f,0.161886f,0.163400f,0.164913f,0.166426f,0.167938f,0.169450f,0.170962f,0.172473f,0.173984f,0.175494f,0.177004f,0.178514f,0.180023f,0.181532f,0.183040f,0.184548f,0.186055f,0.187562f,0.189069f,0.190575f,0.192080f,0.193586f,0.195090f,0.196595f,0.198098f,0.199602f,0.201105f,0.202607f,0.204109f,0.205610f,0.207111f,0.208612f,0.210112f,0.211611f,0.213110f,0.214609f,0.216107f,0.217604f,0.219101f,0.220598f,0.222094f,0.223589f,0.225084f,0.226578f,0.228072f,0.229565f,0.231058f,0.232550f,0.234042f,0.235533f,0.237024f,0.238514f,0.240003f,0.241492f,0.242980f,0.244468f,0.245955f,0.247442f,0.248928f,0.250413f,0.251898f,0.253382f,0.254866f,0.256349f,0.257831f,0.259313f,0.260794f,0.262275f,0.263755f,0.265234f,0.266713f,0.268191f,0.269668f,0.271145f,0.272621f,0.274097f,0.275572f,0.277046f,0.278520f,0.279993f,0.281465f,0.282937f,0.284408f,0.285878f,0.287347f,0.288816f,0.290285f,0.291752f,0.293219f,0.294685f,0.296151f,0.297616f,0.299080f,0.300543f,0.302006f,0.303468f,0.304929f,0.306390f,0.307850f,0.309309f,0.310767f,0.312225f,0.313682f,0.315138f,0.316593f,0.318048f,0.319502f,0.320955f,0.322408f,0.323859f,0.325310f,0.326760f,0.328210f,0.329658f,0.331106f,0.332553f,0.334000f,0.335445f,0.336890f,0.338334f,0.339777f,0.341219f,0.342661f,0.344101f,0.345541f,0.346980f,0.348419f,0.349856f,0.351293f,0.352729f,0.354164f,0.355598f,0.357031f,0.358463f,0.359895f,0.361326f,0.362756f,0.364185f,0.365613f,0.367040f,0.368467f,0.369892f,0.371317f,0.372741f,0.374164f,0.375586f,0.377007f,0.378428f,0.379847f,0.381266f,
		0.382683f,0.384100f,0.385516f,0.386931f,0.388345f,0.389758f,0.391170f,0.392582f,0.393992f,0.395401f,0.396810f,0.398218f,0.399624f,0.401030f,0.402435f,0.403838f,0.405241f,0.406643f,0.408044f,0.409444f,0.410843f,0.412241f,0.413638f,0.415034f,0.416430f,0.417824f,0.419217f,0.420609f,0.422000f,0.423390f,0.424780f,0.426168f,0.427555f,0.428941f,0.430326f,0.431711f,0.433094f,0.434476f,0.435857f,0.437237f,0.438616f,0.439994f,0.441371f,0.442747f,0.444122f,0.445496f,0.446869f,0.448241f,0.449611f,0.450981f,0.452350f,0.453717f,0.455084f,0.456449f,0.457813f,0.459177f,0.460539f,0.461900f,0.463260f,0.464619f,0.465977f,0.467333f,0.468689f,0.470043f,0.471397f,0.472749f,0.474100f,0.475450f,0.476799f,0.478147f,0.479494f,0.480839f,0.482184f,0.483527f,0.484869f,0.486210f,0.487550f,0.488889f,0.490226f,0.491563f,0.492898f,0.494232f,0.495565f,0.496897f,0.498228f,0.499557f,0.500885f,0.502212f,0.503538f,0.504863f,0.506187f,0.507509f,0.508830f,0.510150f,0.511469f,0.512786f,0.514103f,0.515418f,0.516732f,0.518045f,0.519356f,0.520666f,0.521975f,0.523283f,0.524590f,0.525895f,0.527199f,0.528502f,0.529804f,0.531104f,0.532403f,0.533701f,0.534998f,0.536293f,0.537587f,0.538880f,0.540171f,0.541462f,0.542751f,0.544039f,0.545325f,0.546610f,0.547894f,0.549177f,0.550458f,0.551738f,0.553017f,0.554294f,0.555570f,0.556845f,0.558119f,0.559391f,0.560662f,0.561931f,0.563199f,0.564466f,0.565732f,0.566996f,0.568259f,0.569521f,0.570781f,0.572040f,0.573297f,0.574553f,0.575808f,0.577062f,0.578314f,0.579565f,0.580814f,0.582062f,0.583309f,0.584554f,0.585798f,0.587040f,0.588282f,0.589521f,0.590760f,0.591997f,0.593232f,0.594467f,0.595699f,0.596931f,0.598161f,0.599389f,0.600616f,0.601842f,0.603067f,0.604290f,0.605511f,0.606731f,0.607950f,0.609167f,0.610383f,0.611597f,0.612810f,0.614022f,0.615232f,0.616440f,0.617647f,0.618853f,0.620057f,0.621260f,0.622461f,0.623661f,0.624860f,0.626056f,0.627252f,0.628446f,0.629638f,0.630829f,0.632019f,0.633207f,0.634393f,0.635578f,0.636762f,0.637944f,0.639124f,0.640303f,0.641481f,0.642657f,0.643832f,0.645005f,0.646176f,0.647346f,0.648514f,0.649681f,0.650847f,0.652011f,0.653173f,0.654334f,0.655493f,0.656651f,0.657807f,0.658961f,0.660114f,0.661266f,0.662416f,0.663564f,0.664711f,0.665856f,0.667000f,0.668142f,0.669283f,0.670422f,0.671559f,0.672695f,0.673829f,0.674962f,0.676093f,0.677222f,0.678350f,0.679476f,0.680601f,0.681724f,0.682846f,0.683965f,0.685084f,0.686200f,0.687315f,0.688429f,0.689541f,0.690651f,0.691759f,0.692866f,0.693971f,0.695075f,0.696177f,0.697277f,0.698376f,0.699473f,0.700569f,0.701663f,0.702755f,0.703845f,0.704934f,0.706021f,
		0.707107f,0.708191f,0.709273f,0.710353f,0.711432f,0.712509f,0.713585f,0.714659f,0.715731f,0.716801f,0.717870f,0.718937f,0.720003f,0.721066f,0.722128f,0.723188f,0.724247f,0.725304f,0.726359f,0.727413f,0.728464f,0.729514f,0.730563f,0.731609f,0.732654f,0.733697f,0.734739f,0.735779f,0.736817f,0.737853f,0.738887f,0.739920f,0.740951f,0.741980f,0.743008f,0.744034f,0.745058f,0.746080f,0.747101f,0.748119f,0.749136f,0.750152f,0.751165f,0.752177f,0.753187f,0.754195f,0.755201f,0.756206f,0.757209f,0.758210f,0.759209f,0.760207f,0.761202f,0.762196f,0.763188f,0.764179f,0.765167f,0.766154f,0.767139f,0.768122f,0.769103f,0.770083f,0.771061f,0.772036f,0.773010f,0.773983f,0.774953f,0.775922f,0.776888f,0.777853f,0.778817f,0.779778f,0.780737f,0.781695f,0.782651f,0.783605f,0.784557f,0.785507f,0.786455f,0.787402f,0.788346f,0.789289f,0.790230f,0.791169f,0.792107f,0.793042f,0.793975f,0.794907f,0.795837f,0.796765f,0.797691f,0.798615f,0.799537f,0.800458f,0.801376f,0.802293f,0.803208f,0.804120f,0.805031f,0.805940f,0.806848f,0.807753f,0.808656f,0.809558f,0.810457f,0.811355f,0.812251f,0.813144f,0.814036f,0.814926f,0.815814f,0.816701f,0.817585f,0.818467f,0.819348f,0.820226f,0.821102f,0.821977f,0.822850f,0.823721f,0.824589f,0.825456f,0.826321f,0.827184f,0.828045f,0.828904f,0.829761f,0.830616f,0.831470f,0.832321f,0.833170f,0.834018f,0.834863f,0.835706f,0.836548f,0.837387f,0.838225f,0.839060f,0.839894f,0.840725f,0.841555f,0.842383f,0.843208f,0.844032f,0.844854f,0.845673f,0.846491f,0.847307f,0.848120f,0.848932f,0.849742f,0.850549f,0.851355f,0.852159f,0.852961f,0.853760f,0.854558f,0.855354f,0.856147f,0.856939f,0.857729f,0.858516f,0.859302f,0.860085f,0.860867f,0.861646f,0.862424f,0.863199f,0.863973f,0.864744f,0.865514f,0.866281f,0.867046f,0.867809f,0.868571f,0.869330f,0.870087f,0.870842f,0.871595f,0.872346f,0.873095f,0.873842f,0.874587f,0.875329f,0.876070f,0.876809f,0.877545f,0.878280f,0.879012f,0.879743f,0.880471f,0.881197f,0.881921f,0.882643f,0.883363f,0.884081f,0.884797f,0.885511f,0.886223f,0.886932f,0.887640f,0.888345f,0.889048f,0.889750f,0.890449f,0.891146f,0.891841f,0.892534f,0.893224f,0.893913f,0.894599f,0.895284f,0.895966f,0.896646f,0.897325f,0.898001f,0.898674f,0.899346f,0.900016f,0.900683f,0.901349f,0.902012f,0.902673f,0.903332f,0.903989f,0.904644f,0.905297f,0.905947f,0.906596f,0.907242f,0.907886f,0.908528f,0.909168f,0.909806f,0.910441f,0.911075f,0.911706f,0.912335f,0.912962f,0.913587f,0.914210f,0.914830f,0.915449f,0.916065f,0.916679f,0.917291f,0.917901f,0.918508f,0.919114f,0.919717f,0.920318f,0.920917f,0.921514f,0.922109f,0.922701f,0.923291f,
		0.923880f,0.924465f,0.925049f,0.925631f,0.926210f,0.926787f,0.927363f,0.927935f,0.928506f,0.929075f,0.929641f,0.930205f,0.930767f,0.931327f,0.931884f,0.932440f,0.932993f,0.933544f,0.934093f,0.934639f,0.935184f,0.935726f,0.936266f,0.936803f,0.937339f,0.937872f,0.938404f,0.938932f,0.939459f,0.939984f,0.940506f,0.941026f,0.941544f,0.942060f,0.942573f,0.943084f,0.943593f,0.944100f,0.944605f,0.945107f,0.945607f,0.946105f,0.946601f,0.947094f,0.947586f,0.948075f,0.948561f,0.949046f,0.949528f,0.950008f,0.950486f,0.950962f,0.951435f,0.951906f,0.952375f,0.952842f,0.953306f,0.953768f,0.954228f,0.954686f,0.955141f,0.955594f,0.956045f,0.956494f,0.956940f,0.957385f,0.957826f,0.958266f,0.958703f,0.959139f,0.959572f,0.960002f,0.960431f,0.960857f,0.961280f,0.961702f,0.962121f,0.962538f,0.962953f,0.963366f,0.963776f,0.964184f,0.964590f,0.964993f,0.965394f,0.965793f,0.966190f,0.966584f,0.966976f,0.967366f,0.967754f,0.968139f,0.968522f,0.968903f,0.969281f,0.969657f,0.970031f,0.970403f,0.970772f,0.971139f,0.971504f,0.971866f,0.972227f,0.972584f,0.972940f,0.973293f,0.973644f,0.973993f,0.974339f,0.974684f,0.975025f,0.975365f,0.975702f,0.976037f,0.976370f,0.976700f,0.977028f,0.977354f,0.977677f,0.977998f,0.978317f,0.978634f,0.978948f,0.979260f,0.979570f,0.979877f,0.980182f,0.980485f,0.980785f,0.981083f,0.981379f,0.981673f,0.981964f,0.982253f,0.982539f,0.982824f,0.983105f,0.983385f,0.983662f,0.983937f,0.984210f,0.984480f,0.984748f,0.985014f,0.985278f,0.985539f,0.985798f,0.986054f,0.986308f,0.986560f,0.986809f,0.987057f,0.987301f,0.987544f,0.987784f,0.988022f,0.988258f,0.988491f,0.988722f,0.988950f,0.989177f,0.989400f,0.989622f,0.989841f,0.990058f,0.990273f,0.990485f,0.990695f,0.990903f,0.991108f,0.991311f,0.991511f,0.991710f,0.991906f,0.992099f,0.992291f,0.992480f,0.992666f,0.992850f,0.993032f,0.993212f,0.993389f,0.993564f,0.993737f,0.993907f,0.994075f,0.994240f,0.994404f,0.994565f,0.994723f,0.994879f,0.995033f,0.995185f,0.995334f,0.995481f,0.995625f,0.995767f,0.995907f,0.996045f,0.996180f,0.996313f,0.996443f,0.996571f,0.996697f,0.996820f,0.996941f,0.997060f,0.997176f,0.997290f,0.997402f,0.997511f,0.997618f,0.997723f,0.997825f,0.997925f,0.998023f,0.998118f,0.998211f,0.998302f,0.998390f,0.998476f,0.998559f,0.998640f,0.998719f,0.998795f,0.998870f,0.998941f,0.999011f,0.999078f,0.999142f,0.999205f,0.999265f,0.999322f,0.999378f,0.999431f,0.999481f,0.999529f,0.999575f,0.999619f,0.999660f,0.999699f,0.999735f,0.999769f,0.999801f,0.999831f,0.999858f,0.999882f,0.999905f,0.999925f,0.999942f,0.999958f,0.999971f,0.999981f,0.999989f,0.999995f,0.999999f,
		1.000000f,0.999999f,0.999995f,0.999989f,0.999981f,0.999971f,0.999958f,0.999942f,0.999925f,0.999905f,0.999882f,0.999858f,0.999831f,0.999801f,0.999769f,0.999735f,0.999699f,0.999660f,0.999619f,0.999575f,0.999529f,0.999481f,0.999431f,0.999378f,0.999322f,0.999265f,0.999205f,0.999142f,0.999078f,0.999011f,0.998941f,0.998870f,0.998795f,0.998719f,0.998640f,0.998559f,0.998476f,0.998390f,0.998302f,0.998211f,0.998118f,0.998023f,0.997925f,0.997825f,0.997723f,0.997618f,0.997511f,0.997402f,0.997290f,0.997176f,0.997060f,0.996941f,0.996820f,0.996697f,0.996571f,0.996443f,0.996313f,0.996180f,0.996045f,0.995907f,0.995767f,0.995625f,0.995481f,0.995334f,0.995185f,0.995033f,0.994879f,0.994723f,0.994565f,0.994404f,0.994240f,0.994075f,0.993907f,0.993737f,0.993564f,0.993389f,0.993212f,0.993032f,0.992850f,0.992666f,0.992480f,0.992291f,0.992099f,0.991906f,0.991710f,0.991511f,0.991311f,0.991108f,0.990903f,0.990695f,0.990485f,0.990273f,0.990058f,0.989841f,0.989622f,0.989400f,0.989177f,0.988950f,0.988722f,0.988491f,0.988258f,0.988022f,0.987784f,0.987544f,0.987301f,0.987057f,0.986809f,0.986560f,0.986308f,0.986054f,0.985798f,0.985539f,0.985278f,0.985014f,0.984748f,0.984480f,0.984210f,0.983937f,0.983662f,0.983385f,0.983105f,0.982824f,0.982539f,0.982253f,0.981964f,0.981673f,0.981379f,0.981083f,0.980785f,0.980485f,0.980182f,0.979877f,0.979570f,0.979260f,0.978948f,0.978634f,0.978317f,0.977998f,0.977677f,0.977354f,0.977028f,0.976700f,0.976370f,0.976037f,0.975702f,0.975365f,0.975025f,0.974684f,0.974339f,0.973993f,0.973644f,0.973293f,0.972940f,0.972584f,0.972227f,0.971866f,0.971504f,0.971139f,0.970772f,0.970403f,0.970031f,0.969657f,0.969281f,0.968903f,0.968522f,0.968139f,0.967754f,0.967366f,0.966976f,0.966584f,0.966190f,0.965793f,0.965394f,0.964993f,0.964590f,0.964184f,0.963776f,0.963366f,0.962953f,0.962538f,0.962121f,0.961702f,0.961280f,0.960857f,0.960431f,0.960002f,0.959572f,0.959139f,0.958703f,0.958266f,0.957826f,0.957385f,0.956940f,0.956494f,0.956045f,0.955594f,0.955141f,0.954686f,0.954228f,0.953768f,0.953306f,0.952842f,0.952375f,0.951906f,0.951435f,0.950962f,0.950486f,0.950008f,0.949528f,0.949046f,0.948561f,0.948075f,0.947586f,0.947094f,0.946601f,0.946105f,0.945607f,0.945107f,0.944605f,0.944100f,0.943593f,0.943084f,0.942573f,0.942060f,0.941544f,0.941026f,0.940506f,0.939984f,0.939459f,0.938932f,0.938404f,0.937872f,0.937339f,0.936803f,0.936266f,0.935726f,0.935184f,0.934639f,0.934093f,0.933544f,0.932993f,0.932440f,0.931884f,0.931327f,0.930767f,0.930205f,0.929641f,0.929075f,0.928506f,0.927935f,0.927363f,0.926787f,0.926210f,0.925631f,0.925049f,0.924465f,
		0.923880f,0.923291f,0.922701f,0.922109f,0.921514f,0.920917f,0.920318f,0.919717f,0.919114f,0.918508f,0.917901f,0.917291f,0.916679f,0.916065f,0.915449f,0.914830f,0.914210f,0.913587f,0.912962f,0.912335f,0.911706f,0.911075f,0.910441f,0.909806f,0.909168f,0.908528f,0.907886f,0.907242f,0.906596f,0.905947f,0.905297f,0.904644f,0.903989f,0.903332f,0.902673f,0.902012f,0.901349f,0.900683f,0.900016f,0.899346f,0.898674f,0.898001f,0.897325f,0.896646f,0.895966f,0.895284f,0.894599f,0.893913f,0.893224f,0.892534f,0.891841f,0.891146f,0.890449f,0.889750f,0.889048f,0.888345f,0.887640f,0.886932f,0.886223f,0.885511f,0.884797f,0.884081f,0.883363f,0.882643f,0.881921f,0.881197f,0.880471f,0.879743f,0.879012f,0.878280f,0.877545f,0.876809f,0.876070f,0.875329f,0.874587f,0.873842f,0.873095f,0.872346f,0.871595f,0.870842f,0.870087f,0.869330f,0.868571f,0.867809f,0.867046f,0.866281f,0.865514f,0.864744f,0.863973f,0.863199f,0.862424f,0.861646f,0.860867f,0.860085f,0.859302f,0.858516f,0.857729f,0.856939f,0.856147f,0.855354f,0.854558f,0.853760f,0.852961f,0.852159f,0.851355f,0.850549f,0.849742f,0.848932f,0.848120f,0.847307f,0.846491f,0.845673f,0.844854f,0.844032f,0.843208f,0.842383f,0.841555f,0.840725f,0.839894f,0.839060f,0.838225f,0.837387f,0.836548f,0.835706f,0.834863f,0.834018f,0.833170f,0.832321f,0.831470f,0.830616f,0.829761f,0.828904f,0.828045f,0.827184f,0.826321f,0.825456f,0.824589f,0.823721f,0.822850f,0.821977f,0.821102f,0.820226f,0.819348f,0.818467f,0.817585f,0.816701f,0.815814f,0.814926f,0.814036f,0.813144f,0.812251f,0.811355f,0.810457f,0.809558f,0.808656f,0.807753f,0.806848f,0.805940f,0.805031f,0.804120f,0.803208f,0.802293f,0.801376f,0.800458f,0.799537f,0.798615f,0.797691f,0.796765f,0.795837f,0.794907f,0.793975f,0.793042f,0.792107f,0.791169f,0.790230f,0.789289f,0.788346f,0.787402f,0.786455f,0.785507f,0.784557f,0.783605f,0.782651f,0.781695f,0.780737f,0.779778f,0.778817f,0.777853f,0.776888f,0.775922f,0.774953f,0.773983f,0.773010f,0.772036f,0.771061f,0.770083f,0.769103f,0.768122f,0.767139f,0.766154f,0.765167f,0.764179f,0.763188f,0.762196f,0.761202f,0.760207f,0.759209f,0.758210f,0.757209f,0.756206f,0.755201f,0.754195f,0.753187f,0.752177f,0.751165f,0.750152f,0.749136f,0.748119f,0.747101f,0.746080f,0.745058f,0.744034f,0.743008f,0.741980f,0.740951f,0.739920f,0.738887f,0.737853f,0.736817f,0.735779f,0.734739f,0.733697f,0.732654f,0.731609f,0.730563f,0.729514f,0.728464f,0.727413f,0.726359f,0.725304f,0.724247f,0.723188f,0.722128f,0.721066f,0.720003f,0.718937f,0.717870f,0.716801f,0.715731f,0.714659f,0.713585f,0.712509f,0.711432f,0.710353f,0.709273f,0.708191f,
		0.707107f,0.706021f,0.704934f,0.703845f,0.702755f,0.701663f,0.700569f,0.699473f,0.698376f,0.697277f,0.696177f,0.695075f,0.693971f,0.692866f,0.691759f,0.690651f,0.689541f,0.688429f,0.687315f,0.686200f,0.685084f,0.683965f,0.682846f,0.681724f,0.680601f,0.679476f,0.678350f,0.677222f,0.676093f,0.674962f,0.673829f,0.672695f,0.671559f,0.670422f,0.669283f,0.668142f,0.667000f,0.665856f,0.664711f,0.663564f,0.662416f,0.661266f,0.660114f,0.658961f,0.657807f,0.656651f,0.655493f,0.654334f,0.653173f,0.652011f,0.650847f,0.649681f,0.648514f,0.647346f,0.646176f,0.645005f,0.643832f,0.642657f,0.641481f,0.640303f,0.639124f,0.637944f,0.636762f,0.635578f,0.634393f,0.633207f,0.632019f,0.630829f,0.629638f,0.628446f,0.627252f,0.626056f,0.624860f,0.623661f,0.622461f,0.621260f,0.620057f,0.618853f,0.617647f,0.616440f,0.615232f,0.614022f,0.612810f,0.611597f,0.610383f,0.609167f,0.607950f,0.606731f,0.605511f,0.604290f,0.603067f,0.601842f,0.600616f,0.599389f,0.598161f,0.596931f,0.595699f,0.594467f,0.593232f,0.591997f,0.590760f,0.589521f,0.588282f,0.587040f,0.585798f,0.584554f,0.583309f,0.582062f,0.580814f,0.579565f,0.578314f,0.577062f,0.575808f,0.574553f,0.573297f,0.572040f,0.570781f,0.569521f,0.568259f,0.566996f,0.565732f,0.564466f,0.563199f,0.561931f,0.560662f,0.559391f,0.558119f,0.556845f,0.555570f,0.554294f,0.553017f,0.551738f,0.550458f,0.549177f,0.547894f,0.546610f,0.545325f,0.544039f,0.542751f,0.541462f,0.540171f,0.538880f,0.537587f,0.536293f,0.534998f,0.533701f,0.532403f,0.531104f,0.529804f,0.528502f,0.527199f,0.525895f,0.524590f,0.523283f,0.521975f,0.520666f,0.519356f,0.518045f,0.516732f,0.515418f,0.514103f,0.512786f,0.511469f,0.510150f,0.508830f,0.507509f,0.506187f,0.504863f,0.503538f,0.502212f,0.500885f,0.499557f,0.498228f,0.496897f,0.495565f,0.494232f,0.492898f,0.491563f,0.490226f,0.488889f,0.487550f,0.486210f,0.484869f,0.483527f,0.482184f,0.480839f,0.479494f,0.478147f,0.476799f,0.475450f,0.474100f,0.472749f,0.471397f,0.470043f,0.468689f,0.467333f,0.465977f,0.464619f,0.463260f,0.461900f,0.460539f,0.459177f,0.457813f,0.456449f,0.455084f,0.453717f,0.452350f,0.450981f,0.449611f,0.448241f,0.446869f,0.445496f,0.444122f,0.442747f,0.441371f,0.439994f,0.438616f,0.437237f,0.435857f,0.434476f,0.433094f,0.431711f,0.430326f,0.428941f,0.427555f,0.426168f,0.424780f,0.423390f,0.422000f,0.420609f,0.419217f,0.417824f,0.416430f,0.415034f,0.413638f,0.412241f,0.410843f,0.409444f,0.408044f,0.406643f,0.405241f,0.403838f,0.402435f,0.401030f,0.399624f,0.398218f,0.396810f,0.395401f,0.393992f,0.392582f,0.391170f,0.389758f,0.388345f,0.386931f,0.385516f,0.384100f,
		0.382683f,0.381266f,0.379847f,0.378428f,0.377007f,0.375586f,0.374164f,0.372741f,0.371317f,0.369892f,0.368467f,0.367040f,0.365613f,0.364185f,0.362756f,0.361326f,0.359895f,0.358463f,0.357031f,0.355598f,0.354164f,0.352729f,0.351293f,0.349856f,0.348419f,0.346980f,0.345541f,0.344101f,0.342661f,0.341219f,0.339777f,0.338334f,0.336890f,0.335445f,0.334000f,0.332553f,0.331106f,0.329658f,0.328210f,0.326760f,0.325310f,0.323859f,0.322408f,0.320955f,0.319502f,0.318048f,0.316593f,0.315138f,0.313682f,0.312225f,0.310767f,0.309309f,0.307850f,0.306390f,0.304929f,0.303468f,0.302006f,0.300543f,0.299080f,0.297616f,0.296151f,0.294685f,0.293219f,0.291752f,0.290285f,0.288816f,0.287347f,0.285878f,0.284408f,0.282937f,0.281465f,0.279993f,0.278520f,0.277046f,0.275572f,0.274097f,0.272621f,0.271145f,0.269668f,0.268191f,0.266713f,0.265234f,0.263755f,0.262275f,0.260794f,0.259313f,0.257831f,0.256349f,0.254866f,0.253382f,0.251898f,0.250413f,0.248928f,0.247442f,0.245955f,0.244468f,0.242980f,0.241492f,0.240003f,0.238514f,0.237024f,0.235533f,0.234042f,0.232550f,0.231058f,0.229565f,0.228072f,0.226578f,0.225084f,0.223589f,0.222094f,0.220598f,0.219101f,0.217604f,0.216107f,0.214609f,0.213110f,0.211611f,0.210112f,0.208612f,0.207111f,0.205610f,0.204109f,0.202607f,0.201105f,0.199602f,0.198098f,0.196595f,0.195090f,0.193586f,0.192080f,0.190575f,0.189069f,0.187562f,0.186055f,0.184548f,0.183040f,0.181532f,0.180023f,0.178514f,0.177004f,0.175494f,0.173984f,0.172473f,0.170962f,0.169450f,0.167938f,0.166426f,0.164913f,0.163400f,0.161886f,0.160372f,0.158858f,0.157343f,0.155828f,0.154313f,0.152797f,0.151281f,0.149765f,0.148248f,0.146730f,0.145213f,0.143695f,0.142177f,0.140658f,0.139139f,0.137620f,0.136101f,0.134581f,0.133061f,0.131540f,0.130019f,0.128498f,0.126977f,0.125455f,0.123933f,0.122411f,0.120888f,0.119365f,0.117842f,0.116319f,0.114795f,0.113271f,0.111747f,0.110222f,0.108697f,0.107172f,0.105647f,0.104122f,0.102596f,0.101070f,0.099544f,0.098017f,0.096490f,0.094963f,0.093436f,0.091909f,0.090381f,0.088854f,0.087326f,0.085797f,0.084269f,0.082740f,0.081211f,0.079682f,0.078153f,0.076624f,0.075094f,0.073565f,0.072035f,0.070505f,0.068974f,0.067444f,0.065913f,0.064383f,0.062852f,0.061321f,0.059790f,0.058258f,0.056727f,0.055195f,0.053664f,0.052132f,0.050600f,0.049068f,0.047535f,0.046003f,0.044471f,0.042938f,0.041406f,0.039873f,0.038340f,0.036807f,0.035274f,0.033741f,0.032208f,0.030675f,0.029142f,0.027608f,0.026075f,0.024541f,0.023008f,0.021474f,0.019940f,0.018407f,0.016873f,0.015339f,0.013805f,0.012272f,0.010738f,0.009204f,0.007670f,0.006136f,0.004602f,0.003068f,0.001534f,
		-0.000000f,-0.001534f,-0.003068f,-0.004602f,-0.006136f,-0.007670f,-0.009204f,-0.010738f,-0.012272f,-0.013805f,-0.015339f,-0.016873f,-0.018407f,-0.019940f,-0.021474f,-0.023008f,-0.024541f,-0.026075f,-0.027608f,-0.029142f,-0.030675f,-0.032208f,-0.033741f,-0.035274f,-0.036807f,-0.038340f,-0.039873f,-0.041406f,-0.042938f,-0.044471f,-0.046003f,-0.047535f,-0.049068f,-0.050600f,-0.052132f,-0.053664f,-0.055195f,-0.056727f,-0.058258f,-0.059790f,-0.061321f,-0.062852f,-0.064383f,-0.065913f,-0.067444f,-0.068974f,-0.070505f,-0.072035f,-0.073565f,-0.075094f,-0.076624f,-0.078153f,-0.079682f,-0.081211f,-0.082740f,-0.084269f,-0.085797f,-0.087326f,-0.088854f,-0.090381f,-0.091909f,-0.093436f,-0.094963f,-0.096490f,-0.098017f,-0.099544f,-0.101070f,-0.102596f,-0.104122f,-0.105647f,-0.107172f,-0.108697f,-0.110222f,-0.111747f,-0.113271f,-0.114795f,-0.116319f,-0.117842f,-0.119365f,-0.120888f,-0.122411f,-0.123933f,-0.125455f,-0.126977f,-0.128498f,-0.130019f,-0.131540f,-0.133061f,-0.134581f,-0.136101f,-0.137620f,-0.139139f,-0.140658f,-0.142177f,-0.143695f,-0.145213f,-0.146730f,-0.148248f,-0.149765f,-0.151281f,-0.152797f,-0.154313f,-0.155828f,-0.157343f,-0.158858f,-0.160372f,-0.161886f,-0.163400f,-0.164913f,-0.166426f,-0.167938f,-0.169450f,-0.170962f,-0.172473f,-0.173984f,-0.175494f,-0.177004f,-0.178514f,-0.180023f,-0.181532f,-0.183040f,-0.184548f,-0.186055f,-0.187562f,-0.189069f,-0.190575f,-0.192080f,-0.193586f,-0.195090f,-0.196595f,-0.198098f,-0.199602f,-0.201105f,-0.202607f,-0.204109f,-0.205610f,-0.207111f,-0.208612f,-0.210112f,-0.211611f,-0.213110f,-0.214609f,-0.216107f,-0.217604f,-0.219101f,-0.220598f,-0.222094f,-0.223589f,-0.225084f,-0.226578f,-0.228072f,-0.229565f,-0.231058f,-0.232550f,-0.234042f,-0.235533f,-0.237024f,-0.238514f,-0.240003f,-0.241492f,-0.242980f,-0.244468f,-0.245955f,-0.247442f,-0.248928f,-0.250413f,-0.251898f,-0.253382f,-0.254866f,-0.256349f,-0.257831f,-0.259313f,-0.260794f,-0.262275f,-0.263755f,-0.265234f,-0.266713f,-0.268191f,-0.269668f,-0.271145f,-0.272621f,-0.274097f,-0.275572f,-0.277046f,-0.278520f,-0.279993f,-0.281465f,-0.282937f,-0.284408f,-0.285878f,-0.287347f,-0.288816f,-0.290285f,-0.291752f,-0.293219f,-0.294685f,-0.296151f,-0.297616f,-0.299080f,-0.300543f,-0.302006f,-0.303468f,-0.304929f,-0.306390f,-0.307850f,-0.309309f,-0.310767f,-0.312225f,-0.313682f,-0.315138f,-0.316593f,-0.318048f,-0.319502f,-0.320955f,-0.322408f,-0.323859f,-0.325310f,-0.326760f,-0.328210f,-0.329658f,-0.331106f,-0.332553f,-0.334000f,-0.335445f,-0.336890f,-0.338334f,-0.339777f,-0.341219f,-0.342661f,-0.344101f,-0.345541f,-0.346980f,-0.348419f,-0.349856f,-0.351293f,-0.352729f,-0.354164f,-0.355598f,-0.357031f,-0.358463f,-0.359895f,-0.361326f,-0.362756f,-0.364185f,-0.365613f,-0.367040f,-0.368467f,-0.369892f,-0.371317f,-0.372741f,-0.374164f,-0.375586f,-0.377007f,-0.378428f,-0.379847f,-0.381266f,
		-0.382683f,-0.384100f,-0.385516f,-0.386931f,-0.388345f,-0.389758f,-0.391170f,-0.392582f,-0.393992f,-0.395401f,-0.396810f,-0.398218f,-0.399624f,-0.401030f,-0.402435f,-0.403838f,-0.405241f,-0.406643f,-0.408044f,-0.409444f,-0.410843f,-0.412241f,-0.413638f,-0.415034f,-0.416430f,-0.417824f,-0.419217f,-0.420609f,-0.422000f,-0.423390f,-0.424780f,-0.426168f,-0.427555f,-0.428941f,-0.430326f,-0.431711f,-0.433094f,-0.434476f,-0.435857f,-0.437237f,-0.438616f,-0.439994f,-0.441371f,-0.442747f,-0.444122f,-0.445496f,-0.446869f,-0.448241f,-0.449611f,-0.450981f,-0.452350f,-0.453717f,-0.455084f,-0.456449f,-0.457813f,-0.459177f,-0.460539f,-0.461900f,-0.463260f,-0.464619f,-0.465977f,-0.467333f,-0.468689f,-0.470043f,-0.471397f,-0.472749f,-0.474100f,-0.475450f,-0.476799f,-0.478147f,-0.479494f,-0.480839f,-0.482184f,-0.483527f,-0.484869f,-0.486210f,-0.487550f,-0.488889f,-0.490226f,-0.491563f,-0.492898f,-0.494232f,-0.495565f,-0.496897f,-0.498228f,-0.499557f,-0.500885f,-0.502212f,-0.503538f,-0.504863f,-0.506187f,-0.507509f,-0.508830f,-0.510150f,-0.511469f,-0.512786f,-0.514103f,-0.515418f,-0.516732f,-0.518045f,-0.519356f,-0.520666f,-0.521975f,-0.523283f,-0.524590f,-0.525895f,-0.527199f,-0.528502f,-0.529804f,-0.531104f,-0.532403f,-0.533701f,-0.534998f,-0.536293f,-0.537587f,-0.538880f,-0.540171f,-0.541462f,-0.542751f,-0.544039f,-0.545325f,-0.546610f,-0.547894f,-0.549177f,-0.550458f,-0.551738f,-0.553017f,-0.554294f,-0.555570f,-0.556845f,-0.558119f,-0.559391f,-0.560662f,-0.561931f,-0.563199f,-0.564466f,-0.565732f,-0.566996f,-0.568259f,-0.569521f,-0.570781f,-0.572040f,-0.573297f,-0.574553f,-0.575808f,-0.577062f,-0.578314f,-0.579565f,-0.580814f,-0.582062f,-0.583309f,-0.584554f,-0.585798f,-0.587040f,-0.588282f,-0.589521f,-0.590760f,-0.591997f,-0.593232f,-0.594467f,-0.595699f,-0.596931f,-0.598161f,-0.599389f,-0.600616f,-0.601842f,-0.603067f,-0.604290f,-0.605511f,-0.606731f,-0.607950f,-0.609167f,-0.610383f,-0.611597f,-0.612810f,-0.614022f,-0.615232f,-0.616440f,-0.617647f,-0.618853f,-0.620057f,-0.621260f,-0.622461f,-0.623661f,-0.624860f,-0.626056f,-0.627252f,-0.628446f,-0.629638f,-0.630829f,-0.632019f,-0.633207f,-0.634393f,-0.635578f,-0.636762f,-0.637944f,-0.639124f,-0.640303f,-0.641481f,-0.642657f,-0.643832f,-0.645005f,-0.646176f,-0.647346f,-0.648514f,-0.649681f,-0.650847f,-0.652011f,-0.653173f,-0.654334f,-0.655493f,-0.656651f,-0.657807f,-0.658961f,-0.660114f,-0.661266f,-0.662416f,-0.663564f,-0.664711f,-0.665856f,-0.667000f,-0.668142f,-0.669283f,-0.670422f,-0.671559f,-0.672695f,-0.673829f,-0.674962f,-0.676093f,-0.677222f,-0.678350f,-0.679476f,-0.680601f,-0.681724f,-0.682846f,-0.683965f,-0.685084f,-0.686200f,-0.687315f,-0.688429f,-0.689541f,-0.690651f,-0.691759f,-0.692866f,-0.693971f,-0.695075f,-0.696177f,-0.697277f,-0.698376f,-0.699473f,-0.700569f,-0.701663f,-0.702755f,-0.703845f,-0.704934f,-0.706021f,
		-0.707107f,-0.708191f,-0.709273f,-0.710353f,-0.711432f,-0.712509f,-0.713585f,-0.714659f,-0.715731f,-0.716801f,-0.717870f,-0.718937f,-0.720003f,-0.721066f,-0.722128f,-0.723188f,-0.724247f,-0.725304f,-0.726359f,-0.727413f,-0.728464f,-0.729514f,-0.730563f,-0.731609f,-0.732654f,-0.733697f,-0.734739f,-0.735779f,-0.736817f,-0.737853f,-0.738887f,-0.739920f,-0.740951f,-0.741980f,-0.743008f,-0.744034f,-0.745058f,-0.746080f,-0.747101f,-0.748119f,-0.749136f,-0.750152f,-0.751165f,-0.752177f,-0.753187f,-0.754195f,-0.755201f,-0.756206f,-0.757209f,-0.758210f,-0.759209f,-0.760207f,-0.761202f,-0.762196f,-0.763188f,-0.764179f,-0.765167f,-0.766154f,-0.767139f,-0.768122f,-0.769103f,-0.770083f,-0.771061f,-0.772036f,-0.773010f,-0.773983f,-0.774953f,-0.775922f,-0.776888f,-0.777853f,-0.778817f,-0.779778f,-0.780737f,-0.781695f,-0.782651f,-0.783605f,-0.784557f,-0.785507f,-0.786455f,-0.787402f,-0.788346f,-0.789289f,-0.790230f,-0.791169f,-0.792107f,-0.793042f,-0.793975f,-0.794907f,-0.795837f,-0.796765f,-0.797691f,-0.798615f,-0.799537f,-0.800458f,-0.801376f,-0.802293f,-0.803208f,-0.804120f,-0.805031f,-0.805940f,-0.806848f,-0.807753f,-0.808656f,-0.809558f,-0.810457f,-0.811355f,-0.812251f,-0.813144f,-0.814036f,-0.814926f,-0.815814f,-0.816701f,-0.817585f,-0.818467f,-0.819348f,-0.820226f,-0.821102f,-0.821977f,-0.822850f,-0.823721f,-0.824589f,-0.825456f,-0.826321f,-0.827184f,-0.828045f,-0.828904f,-0.829761f,-0.830616f,-0.831470f,-0.832321f,-0.833170f,-0.834018f,-0.834863f,-0.835706f,-0.836548f,-0.837387f,-0.838225f,-0.839060f,-0.839894f,-0.840725f,-0.841555f,-0.842383f,-0.843208f,-0.844032f,-0.844854f,-0.845673f,-0.846491f,-0.847307f,-0.848120f,-0.848932f,-0.849742f,-0.850549f,-0.851355f,-0.852159f,-0.852961f,-0.853760f,-0.854558f,-0.855354f,-0.856147f,-0.856939f,-0.857729f,-0.858516f,-0.859302f,-0.860085f,-0.860867f,-0.861646f,-0.862424f,-0.863199f,-0.863973f,-0.864744f,-0.865514f,-0.866281f,-0.867046f,-0.867809f,-0.868571f,-0.869330f,-0.870087f,-0.870842f,-0.871595f,-0.872346f,-0.873095f,-0.873842f,-0.874587f,-0.875329f,-0.876070f,-0.876809f,-0.877545f,-0.878280f,-0.879012f,-0.879743f,-0.880471f,-0.881197f,-0.881921f,-0.882643f,-0.883363f,-0.884081f,-0.884797f,-0.885511f,-0.886223f,-0.886932f,-0.887640f,-0.888345f,-0.889048f,-0.889750f,-0.890449f,-0.891146f,-0.891841f,-0.892534f,-0.893224f,-0.893913f,-0.894599f,-0.895284f,-0.895966f,-0.896646f,-0.897325f,-0.898001f,-0.898674f,-0.899346f,-0.900016f,-0.900683f,-0.901349f,-0.902012f,-0.902673f,-0.903332f,-0.903989f,-0.904644f,-0.905297f,-0.905947f,-0.906596f,-0.907242f,-0.907886f,-0.908528f,-0.909168f,-0.909806f,-0.910441f,-0.911075f,-0.911706f,-0.912335f,-0.912962f,-0.913587f,-0.914210f,-0.914830f,-0.915449f,-0.916065f,-0.916679f,-0.917291f,-0.917901f,-0.918508f,-0.919114f,-0.919717f,-0.920318f,-0.920917f,-0.921514f,-0.922109f,-0.922701f,-0.923291f,
		-0.923880f,-0.924465f,-0.925049f,-0.925631f,-0.926210f,-0.926787f,-0.927363f,-0.927935f,-0.928506f,-0.929075f,-0.929641f,-0.930205f,-0.930767f,-0.931327f,-0.931884f,-0.932440f,-0.932993f,-0.933544f,-0.934093f,-0.934639f,-0.935184f,-0.935726f,-0.936266f,-0.936803f,-0.937339f,-0.937872f,-0.938404f,-0.938932f,-0.939459f,-0.939984f,-0.940506f,-0.941026f,-0.941544f,-0.942060f,-0.942573f,-0.943084f,-0.943593f,-0.944100f,-0.944605f,-0.945107f,-0.945607f,-0.946105f,-0.946601f,-0.947094f,-0.947586f,-0.948075f,-0.948561f,-0.949046f,-0.949528f,-0.950008f,-0.950486f,-0.950962f,-0.951435f,-0.951906f,-0.952375f,-0.952842f,-0.953306f,-0.953768f,-0.954228f,-0.954686f,-0.955141f,-0.955594f,-0.956045f,-0.956494f,-0.956940f,-0.957385f,-0.957826f,-0.958266f,-0.958703f,-0.959139f,-0.959572f,-0.960002f,-0.960431f,-0.960857f,-0.961280f,-0.961702f,-0.962121f,-0.962538f,-0.962953f,-0.963366f,-0.963776f,-0.964184f,-0.964590f,-0.964993f,-0.965394f,-0.965793f,-0.966190f,-0.966584f,-0.966976f,-0.967366f,-0.967754f,-0.968139f,-0.968522f,-0.968903f,-0.969281f,-0.969657f,-0.970031f,-0.970403f,-0.970772f,-0.971139f,-0.971504f,-0.971866f,-0.972227f,-0.972584f,-0.972940f,-0.973293f,-0.973644f,-0.973993f,-0.974339f,-0.974684f,-0.975025f,-0.975365f,-0.975702f,-0.976037f,-0.976370f,-0.976700f,-0.977028f,-0.977354f,-0.977677f,-0.977998f,-0.978317f,-0.978634f,-0.978948f,-0.979260f,-0.979570f,-0.979877f,-0.980182f,-0.980485f,-0.980785f,-0.981083f,-0.981379f,-0.981673f,-0.981964f,-0.982253f,-0.982539f,-0.982824f,-0.983105f,-0.983385f,-0.983662f,-0.983937f,-0.984210f,-0.984480f,-0.984748f,-0.985014f,-0.985278f,-0.985539f,-0.985798f,-0.986054f,-0.986308f,-0.986560f,-0.986809f,-0.987057f,-0.987301f,-0.987544f,-0.987784f,-0.988022f,-0.988258f,-0.988491f,-0.988722f,-0.988950f,-0.989177f,-0.989400f,-0.989622f,-0.989841f,-0.990058f,-0.990273f,-0.990485f,-0.990695f,-0.990903f,-0.991108f,-0.991311f,-0.991511f,-0.991710f,-0.991906f,-0.992099f,-0.992291f,-0.992480f,-0.992666f,-0.992850f,-0.993032f,-0.993212f,-0.993389f,-0.993564f,-0.993737f,-0.993907f,-0.994075f,-0.994240f,-0.994404f,-0.994565f,-0.994723f,-0.994879f,-0.995033f,-0.995185f,-0.995334f,-0.995481f,-0.995625f,-0.995767f,-0.995907f,-0.996045f,-0.996180f,-0.996313f,-0.996443f,-0.996571f,-0.996697f,-0.996820f,-0.996941f,-0.997060f,-0.997176f,-0.997290f,-0.997402f,-0.997511f,-0.997618f,-0.997723f,-0.997825f,-0.997925f,-0.998023f,-0.998118f,-0.998211f,-0.998302f,-0.998390f,-0.998476f,-0.998559f,-0.998640f,-0.998719f,-0.998795f,-0.998870f,-0.998941f,-0.999011f,-0.999078f,-0.999142f,-0.999205f,-0.999265f,-0.999322f,-0.999378f,-0.999431f,-0.999481f,-0.999529f,-0.999575f,-0.999619f,-0.999660f,-0.999699f,-0.999735f,-0.999769f,-0.999801f,-0.999831f,-0.999858f,-0.999882f,-0.999905f,-0.999925f,-0.999942f,-0.999958f,-0.999971f,-0.999981f,-0.999989f,-0.999995f,-0.999999f,
		-1.000000f,-0.999999f,-0.999995f,-0.999989f,-0.999981f,-0.999971f,-0.999958f,-0.999942f,-0.999925f,-0.999905f,-0.999882f,-0.999858f,-0.999831f,-0.999801f,-0.999769f,-0.999735f,-0.999699f,-0.999660f,-0.999619f,-0.999575f,-0.999529f,-0.999481f,-0.999431f,-0.999378f,-0.999322f,-0.999265f,-0.999205f,-0.999142f,-0.999078f,-0.999011f,-0.998941f,-0.998870f,-0.998795f,-0.998719f,-0.998640f,-0.998559f,-0.998476f,-0.998390f,-0.998302f,-0.998211f,-0.998118f,-0.998023f,-0.997925f,-0.997825f,-0.997723f,-0.997618f,-0.997511f,-0.997402f,-0.997290f,-0.997176f,-0.997060f,-0.996941f,-0.996820f,-0.996697f,-0.996571f,-0.996443f,-0.996313f,-0.996180f,-0.996045f,-0.995907f,-0.995767f,-0.995625f,-0.995481f,-0.995334f,-0.995185f,-0.995033f,-0.994879f,-0.994723f,-0.994565f,-0.994404f,-0.994240f,-0.994075f,-0.993907f,-0.993737f,-0.993564f,-0.993389f,-0.993212f,-0.993032f,-0.992850f,-0.992666f,-0.992480f,-0.992291f,-0.992099f,-0.991906f,-0.991710f,-0.991511f,-0.991311f,-0.991108f,-0.990903f,-0.990695f,-0.990485f,-0.990273f,-0.990058f,-0.989841f,-0.989622f,-0.989400f,-0.989177f,-0.988950f,-0.988722f,-0.988491f,-0.988258f,-0.988022f,-0.987784f,-0.987544f,-0.987301f,-0.987057f,-0.986809f,-0.986560f,-0.986308f,-0.986054f,-0.985798f,-0.985539f,-0.985278f,-0.985014f,-0.984748f,-0.984480f,-0.984210f,-0.983937f,-0.983662f,-0.983385f,-0.983105f,-0.982824f,-0.982539f,-0.982253f,-0.981964f,-0.981673f,-0.981379f,-0.981083f,-0.980785f,-0.980485f,-0.980182f,-0.979877f,-0.979570f,-0.979260f,-0.978948f,-0.978634f,-0.978317f,-0.977998f,-0.977677f,-0.977354f,-0.977028f,-0.976700f,-0.976370f,-0.976037f,-0.975702f,-0.975365f,-0.975025f,-0.974684f,-0.974339f,-0.973993f,-0.973644f,-0.973293f,-0.972940f,-0.972584f,-0.972227f,-0.971866f,-0.971504f,-0.971139f,-0.970772f,-0.970403f,-0.970031f,-0.969657f,-0.969281f,-0.968903f,-0.968522f,-0.968139f,-0.967754f,-0.967366f,-0.966976f,-0.966584f,-0.966190f,-0.965793f,-0.965394f,-0.964993f,-0.964590f,-0.964184f,-0.963776f,-0.963366f,-0.962953f,-0.962538f,-0.962121f,-0.961702f,-0.961280f,-0.960857f,-0.960431f,-0.960002f,-0.959572f,-0.959139f,-0.958703f,-0.958266f,-0.957826f,-0.957385f,-0.956940f,-0.956494f,-0.956045f,-0.955594f,-0.955141f,-0.954686f,-0.954228f,-0.953768f,-0.953306f,-0.952842f,-0.952375f,-0.951906f,-0.951435f,-0.950962f,-0.950486f,-0.950008f,-0.949528f,-0.949046f,-0.948561f,-0.948075f,-0.947586f,-0.947094f,-0.946601f,-0.946105f,-0.945607f,-0.945107f,-0.944605f,-0.944100f,-0.943593f,-0.943084f,-0.942573f,-0.942060f,-0.941544f,-0.941026f,-0.940506f,-0.939984f,-0.939459f,-0.938932f,-0.938404f,-0.937872f,-0.937339f,-0.936803f,-0.936266f,-0.935726f,-0.935184f,-0.934639f,-0.934093f,-0.933544f,-0.932993f,-0.932440f,-0.931884f,-0.931327f,-0.930767f,-0.930205f,-0.929641f,-0.929075f,-0.928506f,-0.927935f,-0.927363f,-0.926787f,-0.926210f,-0.925631f,-0.925049f,-0.924465f,
		-0.923880f,-0.923291f,-0.922701f,-0.922109f,-0.921514f,-0.920917f,-0.920318f,-0.919717f,-0.919114f,-0.918508f,-0.917901f,-0.917291f,-0.916679f,-0.916065f,-0.915449f,-0.914830f,-0.914210f,-0.913587f,-0.912962f,-0.912335f,-0.911706f,-0.911075f,-0.910441f,-0.909806f,-0.909168f,-0.908528f,-0.907886f,-0.907242f,-0.906596f,-0.905947f,-0.905297f,-0.904644f,-0.903989f,-0.903332f,-0.902673f,-0.902012f,-0.901349f,-0.900683f,-0.900016f,-0.899346f,-0.898674f,-0.898001f,-0.897325f,-0.896646f,-0.895966f,-0.895284f,-0.894599f,-0.893913f,-0.893224f,-0.892534f,-0.891841f,-0.891146f,-0.890449f,-0.889750f,-0.889048f,-0.888345f,-0.887640f,-0.886932f,-0.886223f,-0.885511f,-0.884797f,-0.884081f,-0.883363f,-0.882643f,-0.881921f,-0.881197f,-0.880471f,-0.879743f,-0.879012f,-0.878280f,-0.877545f,-0.876809f,-0.876070f,-0.875329f,-0.874587f,-0.873842f,-0.873095f,-0.872346f,-0.871595f,-0.870842f,-0.870087f,-0.869330f,-0.868571f,-0.867809f,-0.867046f,-0.866281f,-0.865514f,-0.864744f,-0.863973f,-0.863199f,-0.862424f,-0.861646f,-0.860867f,-0.860085f,-0.859302f,-0.858516f,-0.857729f,-0.856939f,-0.856147f,-0.855354f,-0.854558f,-0.853760f,-0.852961f,-0.852159f,-0.851355f,-0.850549f,-0.849742f,-0.848932f,-0.848120f,-0.847307f,-0.846491f,-0.845673f,-0.844854f,-0.844032f,-0.843208f,-0.842383f,-0.841555f,-0.840725f,-0.839894f,-0.839060f,-0.838225f,-0.837387f,-0.836548f,-0.835706f,-0.834863f,-0.834018f,-0.833170f,-0.832321f,-0.831470f,-0.830616f,-0.829761f,-0.828904f,-0.828045f,-0.827184f,-0.826321f,-0.825456f,-0.824589f,-0.823721f,-0.822850f,-0.821977f,-0.821102f,-0.820226f,-0.819348f,-0.818467f,-0.817585f,-0.816701f,-0.815814f,-0.814926f,-0.814036f,-0.813144f,-0.812251f,-0.811355f,-0.810457f,-0.809558f,-0.808656f,-0.807753f,-0.806848f,-0.805940f,-0.805031f,-0.804120f,-0.803208f,-0.802293f,-0.801376f,-0.800458f,-0.799537f,-0.798615f,-0.797691f,-0.796765f,-0.795837f,-0.794907f,-0.793975f,-0.793042f,-0.792107f,-0.791169f,-0.790230f,-0.789289f,-0.788346f,-0.787402f,-0.786455f,-0.785507f,-0.784557f,-0.783605f,-0.782651f,-0.781695f,-0.780737f,-0.779778f,-0.778817f,-0.777853f,-0.776888f,-0.775922f,-0.774953f,-0.773983f,-0.773010f,-0.772036f,-0.771061f,-0.770083f,-0.769103f,-0.768122f,-0.767139f,-0.766154f,-0.765167f,-0.764179f,-0.763188f,-0.762196f,-0.761202f,-0.760207f,-0.759209f,-0.758210f,-0.757209f,-0.756206f,-0.755201f,-0.754195f,-0.753187f,-0.752177f,-0.751165f,-0.750152f,-0.749136f,-0.748119f,-0.747101f,-0.746080f,-0.745058f,-0.744034f,-0.743008f,-0.741980f,-0.740951f,-0.739920f,-0.738887f,-0.737853f,-0.736817f,-0.735779f,-0.734739f,-0.733697f,-0.732654f,-0.731609f,-0.730563f,-0.729514f,-0.728464f,-0.727413f,-0.726359f,-0.725304f,-0.724247f,-0.723188f,-0.722128f,-0.721066f,-0.720003f,-0.718937f,-0.717870f,-0.716801f,-0.715731f,-0.714659f,-0.713585f,-0.712509f,-0.711432f,-0.710353f,-0.709273f,-0.708191f,
		-0.707107f,-0.706021f,-0.704934f,-0.703845f,-0.702755f,-0.701663f,-0.700569f,-0.699473f,-0.698376f,-0.697277f,-0.696177f,-0.695075f,-0.693971f,-0.692866f,-0.691759f,-0.690651f,-0.689541f,-0.688429f,-0.687315f,-0.686200f,-0.685084f,-0.683965f,-0.682846f,-0.681724f,-0.680601f,-0.679476f,-0.678350f,-0.677222f,-0.676093f,-0.674962f,-0.673829f,-0.672695f,-0.671559f,-0.670422f,-0.669283f,-0.668142f,-0.667000f,-0.665856f,-0.664711f,-0.663564f,-0.662416f,-0.661266f,-0.660114f,-0.658961f,-0.657807f,-0.656651f,-0.655493f,-0.654334f,-0.653173f,-0.652011f,-0.650847f,-0.649681f,-0.648514f,-0.647346f,-0.646176f,-0.645005f,-0.643832f,-0.642657f,-0.641481f,-0.640303f,-0.639124f,-0.637944f,-0.636762f,-0.635578f,-0.634393f,-0.633207f,-0.632019f,-0.630829f,-0.629638f,-0.628446f,-0.627252f,-0.626056f,-0.624860f,-0.623661f,-0.622461f,-0.621260f,-0.620057f,-0.618853f,-0.617647f,-0.616440f,-0.615232f,-0.614022f,-0.612810f,-0.611597f,-0.610383f,-0.609167f,-0.607950f,-0.606731f,-0.605511f,-0.604290f,-0.603067f,-0.601842f,-0.600616f,-0.599389f,-0.598161f,-0.596931f,-0.595699f,-0.594467f,-0.593232f,-0.591997f,-0.590760f,-0.589521f,-0.588282f,-0.587040f,-0.585798f,-0.584554f,-0.583309f,-0.582062f,-0.580814f,-0.579565f,-0.578314f,-0.577062f,-0.575808f,-0.574553f,-0.573297f,-0.572040f,-0.570781f,-0.569521f,-0.568259f,-0.566996f,-0.565732f,-0.564466f,-0.563199f,-0.561931f,-0.560662f,-0.559391f,-0.558119f,-0.556845f,-0.555570f,-0.554294f,-0.553017f,-0.551738f,-0.550458f,-0.549177f,-0.547894f,-0.546610f,-0.545325f,-0.544039f,-0.542751f,-0.541462f,-0.540171f,-0.538880f,-0.537587f,-0.536293f,-0.534998f,-0.533701f,-0.532403f,-0.531104f,-0.529804f,-0.528502f,-0.527199f,-0.525895f,-0.524590f,-0.523283f,-0.521975f,-0.520666f,-0.519356f,-0.518045f,-0.516732f,-0.515418f,-0.514103f,-0.512786f,-0.511469f,-0.510150f,-0.508830f,-0.507509f,-0.506187f,-0.504863f,-0.503538f,-0.502212f,-0.500885f,-0.499557f,-0.498228f,-0.496897f,-0.495565f,-0.494232f,-0.492898f,-0.491563f,-0.490226f,-0.488889f,-0.487550f,-0.486210f,-0.484869f,-0.483527f,-0.482184f,-0.480839f,-0.479494f,-0.478147f,-0.476799f,-0.475450f,-0.474100f,-0.472749f,-0.471397f,-0.470043f,-0.468689f,-0.467333f,-0.465977f,-0.464619f,-0.463260f,-0.461900f,-0.460539f,-0.459177f,-0.457813f,-0.456449f,-0.455084f,-0.453717f,-0.452350f,-0.450981f,-0.449611f,-0.448241f,-0.446869f,-0.445496f,-0.444122f,-0.442747f,-0.441371f,-0.439994f,-0.438616f,-0.437237f,-0.435857f,-0.434476f,-0.433094f,-0.431711f,-0.430326f,-0.428941f,-0.427555f,-0.426168f,-0.424780f,-0.423390f,-0.422000f,-0.420609f,-0.419217f,-0.417824f,-0.416430f,-0.415034f,-0.413638f,-0.412241f,-0.410843f,-0.409444f,-0.408044f,-0.406643f,-0.405241f,-0.403838f,-0.402435f,-0.401030f,-0.399624f,-0.398218f,-0.396810f,-0.395401f,-0.393992f,-0.392582f,-0.391170f,-0.389758f,-0.388345f,-0.386931f,-0.385516f,-0.384100f,
		-0.382683f,-0.381266f,-0.379847f,-0.378428f,-0.377007f,-0.375586f,-0.374164f,-0.372741f,-0.371317f,-0.369892f,-0.368467f,-0.367040f,-0.365613f,-0.364185f,-0.362756f,-0.361326f,-0.359895f,-0.358463f,-0.357031f,-0.355598f,-0.354164f,-0.352729f,-0.351293f,-0.349856f,-0.348419f,-0.346980f,-0.345541f,-0.344101f,-0.342661f,-0.341219f,-0.339777f,-0.338334f,-0.336890f,-0.335445f,-0.334000f,-0.332553f,-0.331106f,-0.329658f,-0.328210f,-0.326760f,-0.325310f,-0.323859f,-0.322408f,-0.320955f,-0.319502f,-0.318048f,-0.316593f,-0.315138f,-0.313682f,-0.312225f,-0.310767f,-0.309309f,-0.307850f,-0.306390f,-0.304929f,-0.303468f,-0.302006f,-0.300543f,-0.299080f,-0.297616f,-0.296151f,-0.294685f,-0.293219f,-0.291752f,-0.290285f,-0.288816f,-0.287347f,-0.285878f,-0.284408f,-0.282937f,-0.281465f,-0.279993f,-0.278520f,-0.277046f,-0.275572f,-0.274097f,-0.272621f,-0.271145f,-0.269668f,-0.268191f,-0.266713f,-0.265234f,-0.263755f,-0.262275f,-0.260794f,-0.259313f,-0.257831f,-0.256349f,-0.254866f,-0.253382f,-0.251898f,-0.250413f,-0.248928f,-0.247442f,-0.245955f,-0.244468f,-0.242980f,-0.241492f,-0.240003f,-0.238514f,-0.237024f,-0.235533f,-0.234042f,-0.232550f,-0.231058f,-0.229565f,-0.228072f,-0.226578f,-0.225084f,-0.223589f,-0.222094f,-0.220598f,-0.219101f,-0.217604f,-0.216107f,-0.214609f,-0.213110f,-0.211611f,-0.210112f,-0.208612f,-0.207111f,-0.205610f,-0.204109f,-0.202607f,-0.201105f,-0.199602f,-0.198098f,-0.196595f,-0.195090f,-0.193586f,-0.192080f,-0.190575f,-0.189069f,-0.187562f,-0.186055f,-0.184548f,-0.183040f,-0.181532f,-0.180023f,-0.178514f,-0.177004f,-0.175494f,-0.173984f,-0.172473f,-0.170962f,-0.169450f,-0.167938f,-0.166426f,-0.164913f,-0.163400f,-0.161886f,-0.160372f,-0.158858f,-0.157343f,-0.155828f,-0.154313f,-0.152797f,-0.151281f,-0.149765f,-0.148248f,-0.146730f,-0.145213f,-0.143695f,-0.142177f,-0.140658f,-0.139139f,-0.137620f,-0.136101f,-0.134581f,-0.133061f,-0.131540f,-0.130019f,-0.128498f,-0.126977f,-0.125455f,-0.123933f,-0.122411f,-0.120888f,-0.119365f,-0.117842f,-0.116319f,-0.114795f,-0.113271f,-0.111747f,-0.110222f,-0.108697f,-0.107172f,-0.105647f,-0.104122f,-0.102596f,-0.101070f,-0.099544f,-0.098017f,-0.096490f,-0.094963f,-0.093436f,-0.091909f,-0.090381f,-0.088854f,-0.087326f,-0.085797f,-0.084269f,-0.082740f,-0.081211f,-0.079682f,-0.078153f,-0.076624f,-0.075094f,-0.073565f,-0.072035f,-0.070505f,-0.068974f,-0.067444f,-0.065913f,-0.064383f,-0.062852f,-0.061321f,-0.059790f,-0.058258f,-0.056727f,-0.055195f,-0.053664f,-0.052132f,-0.050600f,-0.049068f,-0.047535f,-0.046003f,-0.044471f,-0.042938f,-0.041406f,-0.039873f,-0.038340f,-0.036807f,-0.035274f,-0.033741f,-0.032208f,-0.030675f,-0.029142f,-0.027608f,-0.026075f,-0.024541f,-0.023008f,-0.021474f,-0.019940f,-0.018407f,-0.016873f,-0.015339f,-0.013805f,-0.012272f,-0.010738f,-0.009204f,-0.007670f,-0.006136f,-0.004602f,-0.003068f,-0.001534f,
		0.000000f,0.001534f,0.003068f,0.004602f,0.006136f,0.007670f,0.009204f,0.010738f,0.012272f,0.013805f,0.015339f,0.016873f,0.018407f,0.019940f,0.021474f,0.023008f,0.024541f,0.026075f,0.027608f,0.029142f,0.030675f,0.032208f,0.033741f,0.035274f,0.036807f,0.038340f,0.039873f,0.041406f,0.042938f,0.044471f,0.046003f,0.047535f,0.049068f,0.050600f,0.052132f,0.053664f,0.055195f,0.056727f,0.058258f,0.059790f,0.061321f,0.062852f,0.064383f,0.065913f,0.067444f,0.068974f,0.070505f,0.072035f,0.073565f,0.075094f,0.076624f,0.078153f,0.079682f,0.081211f,0.082740f,0.084269f,0.085797f,0.087326f,0.088854f,0.090381f,0.091909f,0.093436f,0.094963f,0.096490f,0.098017f,0.099544f,0.101070f,0.102596f,0.104122f,0.105647f,0.107172f,0.108697f,0.110222f,0.111747f,0.113271f,0.114795f,0.116319f,0.117842f,0.119365f,0.120888f,0.122411f,0.123933f,0.125455f,0.126977f,0.128498f,0.130019f,0.131540f,0.133061f,0.134581f,0.136101f,0.137620f,0.139139f,0.140658f,0.142177f,0.143695f,0.145213f,0.146730f,0.148248f,0.149765f,0.151281f,0.152797f,0.154313f,0.155828f,0.157343f,0.158858f,0.160372f,0.161886f,0.163400f,0.164913f,0.166426f,0.167938f,0.169450f,0.170962f,0.172473f,0.173984f,0.175494f,0.177004f,0.178514f,0.180023f,0.181532f,0.183040f,0.184548f,0.186055f,0.187562f,0.189069f,0.190575f,0.192080f,0.193586f,0.195090f,0.196595f,0.198098f,0.199602f,0.201105f,0.202607f,0.204109f,0.205610f,0.207111f,0.208612f,0.210112f,0.211611f,0.213110f,0.214609f,0.216107f,0.217604f,0.219101f,0.220598f,0.222094f,0.223589f,0.225084f,0.226578f,0.228072f,0.229565f,0.231058f,0.232550f,0.234042f,0.235533f,0.237024f,0.238514f,0.240003f,0.241492f,0.242980f,0.244468f,0.245955f,0.247442f,0.248928f,0.250413f,0.251898f,0.253382f,0.254866f,0.256349f,0.257831f,0.259313f,0.260794f,0.262275f,0.263755f,0.265234f,0.266713f,0.268191f,0.269668f,0.271145f,0.272621f,0.274097f,0.275572f,0.277046f,0.278520f,0.279993f,0.281465f,0.282937f,0.284408f,0.285878f,0.287347f,0.288816f,0.290285f,0.291752f,0.293219f,0.294685f,0.296151f,0.297616f,0.299080f,0.300543f,0.302006f,0.303468f,0.304929f,0.306390f,0.307850f,0.309309f,0.310767f,0.312225f,0.313682f,0.315138f,0.316593f,0.318048f,0.319502f,0.320955f,0.322408f,0.323859f,0.325310f,0.326760f,0.328210f,0.329658f,0.331106f,0.332553f,0.334000f,0.335445f,0.336890f,0.338334f,0.339777f,0.341219f,0.342661f,0.344101f,0.345541f,0.346980f,0.348419f,0.349856f,0.351293f,0.352729f,0.354164f,0.355598f,0.357031f,0.358463f,0.359895f,0.361326f,0.362756f,0.364185f,0.365613f,0.367040f,0.368467f,0.369892f,0.371317f,0.372741f,0.374164f,0.375586f,0.377007f,0.378428f,0.379847f,0.381266f,
		0.382683f,0.384100f,0.385516f,0.386931f,0.388345f,0.389758f,0.391170f,0.392582f,0.393992f,0.395401f,0.396810f,0.398218f,0.399624f,0.401030f,0.402435f,0.403838f,0.405241f,0.406643f,0.408044f,0.409444f,0.410843f,0.412241f,0.413638f,0.415034f,0.416430f,0.417824f,0.419217f,0.420609f,0.422000f,0.423390f,0.424780f,0.426168f,0.427555f,0.428941f,0.430326f,0.431711f,0.433094f,0.434476f,0.435857f,0.437237f,0.438616f,0.439994f,0.441371f,0.442747f,0.444122f,0.445496f,0.446869f,0.448241f,0.449611f,0.450981f,0.452350f,0.453717f,0.455084f,0.456449f,0.457813f,0.459177f,0.460539f,0.461900f,0.463260f,0.464619f,0.465977f,0.467333f,0.468689f,0.470043f,0.471397f,0.472749f,0.474100f,0.475450f,0.476799f,0.478147f,0.479494f,0.480839f,0.482184f,0.483527f,0.484869f,0.486210f,0.487550f,0.488889f,0.490226f,0.491563f,0.492898f,0.494232f,0.495565f,0.496897f,0.498228f,0.499557f,0.500885f,0.502212f,0.503538f,0.504863f,0.506187f,0.507509f,0.508830f,0.510150f,0.511469f,0.512786f,0.514103f,0.515418f,0.516732f,0.518045f,0.519356f,0.520666f,0.521975f,0.523283f,0.524590f,0.525895f,0.527199f,0.528502f,0.529804f,0.531104f,0.532403f,0.533701f,0.534998f,0.536293f,0.537587f,0.538880f,0.540171f,0.541462f,0.542751f,0.544039f,0.545325f,0.546610f,0.547894f,0.549177f,0.550458f,0.551738f,0.553017f,0.554294f,0.555570f,0.556845f,0.558119f,0.559391f,0.560662f,0.561931f,0.563199f,0.564466f,0.565732f,0.566996f,0.568259f,0.569521f,0.570781f,0.572040f,0.573297f,0.574553f,0.575808f,0.577062f,0.578314f,0.579565f,0.580814f,0.582062f,0.583309f,0.584554f,0.585798f,0.587040f,0.588282f,0.589521f,0.590760f,0.591997f,0.593232f,0.594467f,0.595699f,0.596931f,0.598161f,0.599389f,0.600616f,0.601842f,0.603067f,0.604290f,0.605511f,0.606731f,0.607950f,0.609167f,0.610383f,0.611597f,0.612810f,0.614022f,0.615232f,0.616440f,0.617647f,0.618853f,0.620057f,0.621260f,0.622461f,0.623661f,0.624860f,0.626056f,0.627252f,0.628446f,0.629638f,0.630829f,0.632019f,0.633207f,0.634393f,0.635578f,0.636762f,0.637944f,0.639124f,0.640303f,0.641481f,0.642657f,0.643832f,0.645005f,0.646176f,0.647346f,0.648514f,0.649681f,0.650847f,0.652011f,0.653173f,0.654334f,0.655493f,0.656651f,0.657807f,0.658961f,0.660114f,0.661266f,0.662416f,0.663564f,0.664711f,0.665856f,0.667000f,0.668142f,0.669283f,0.670422f,0.671559f,0.672695f,0.673829f,0.674962f,0.676093f,0.677222f,0.678350f,0.679476f,0.680601f,0.681724f,0.682846f,0.683965f,0.685084f,0.686200f,0.687315f,0.688429f,0.689541f,0.690651f,0.691759f,0.692866f,0.693971f,0.695075f,0.696177f,0.697277f,0.698376f,0.699473f,0.700569f,0.701663f,0.702755f,0.703845f,0.704934f,0.706021f,
		0.707107f,0.708191f,0.709273f,0.710353f,0.711432f,0.712509f,0.713585f,0.714659f,0.715731f,0.716801f,0.717870f,0.718937f,0.720003f,0.721066f,0.722128f,0.723189f,0.724247f,0.725304f,0.726359f,0.727413f,0.728464f,0.729514f,0.730563f,0.731609f,0.732654f,0.733697f,0.734739f,0.735779f,0.736817f,0.737853f,0.738887f,0.739920f,0.740951f,0.741980f,0.743008f,0.744034f,0.745058f,0.746080f,0.747101f,0.748119f,0.749136f,0.750152f,0.751165f,0.752177f,0.753187f,0.754195f,0.755201f,0.756206f,0.757209f,0.758210f,0.759209f,0.760207f,0.761202f,0.762196f,0.763188f,0.764179f,0.765167f,0.766154f,0.767139f,0.768122f,0.769103f,0.770083f,0.771061f,0.772036f,0.773010f,0.773983f,0.774953f,0.775922f,0.776888f,0.777853f,0.778817f,0.779778f,0.780737f,0.781695f,0.782651f,0.783605f,0.784557f,0.785507f,0.786455f,0.787402f,0.788346f,0.789289f,0.790230f,0.791169f,0.792107f,0.793042f,0.793975f,0.794907f,0.795837f,0.796765f,0.797691f,0.798615f,0.799537f,0.800458f,0.801376f,0.802293f,0.803208f,0.804120f,0.805031f,0.805940f,0.806848f,0.807753f,0.808656f,0.809558f,0.810457f,0.811355f,0.812251f,0.813144f,0.814036f,0.814926f,0.815814f,0.816701f,0.817585f,0.818467f,0.819348f,0.820226f,0.821102f,0.821977f,0.822850f,0.823721f,0.824589f,0.825456f,0.826321f,0.827184f,0.828045f,0.828904f,0.829761f,0.830616f,0.831470f,0.832321f,0.833170f,0.834018f,0.834863f,0.835706f,0.836548f,0.837387f,0.838225f,0.839060f,0.839894f,0.840725f,0.841555f,0.842383f,0.843208f,0.844032f,0.844854f,0.845673f,0.846491f,0.847307f,0.848120f,0.848932f,0.849742f,0.850549f,0.851355f,0.852159f,0.852961f,0.853760f,0.854558f,0.855354f,0.856147f,0.856939f,0.857729f,0.858516f,0.859302f,0.860085f,0.860867f,0.861646f,0.862424f,0.863199f,0.863973f,0.864744f,0.865514f,0.866281f,0.867046f,0.867809f,0.868571f,0.869330f,0.870087f,0.870842f,0.871595f,0.872346f,0.873095f,0.873842f,0.874587f,0.875329f,0.876070f,0.876809f,0.877545f,0.878280f,0.879012f,0.879743f,0.880471f,0.881197f,0.881921f,0.882643f,0.883363f,0.884081f,0.884797f,0.885511f,0.886223f,0.886932f,0.887640f,0.888345f,0.889048f,0.889750f,0.890449f,0.891146f,0.891841f,0.892534f,0.893224f,0.893913f,0.894599f,0.895284f,0.895966f,0.896646f,0.897325f,0.898001f,0.898674f,0.899346f,0.900016f,0.900683f,0.901349f,0.902012f,0.902673f,0.903332f,0.903989f,0.904644f,0.905297f,0.905947f,0.906596f,0.907242f,0.907886f,0.908528f,0.909168f,0.909806f,0.910441f,0.911075f,0.911706f,0.912335f,0.912962f,0.913587f,0.914210f,0.914830f,0.915449f,0.916065f,0.916679f,0.917291f,0.917901f,0.918508f,0.919114f,0.919717f,0.920318f,0.920917f,0.921514f,0.922109f,0.922701f,0.923291f,
		0.923880f,0.924465f,0.925049f,0.925631f,0.926210f,0.926787f,0.927363f,0.927935f,0.928506f,0.929075f,0.929641f,0.930205f,0.930767f,0.931327f,0.931884f,0.932440f,0.932993f,0.933544f,0.934093f,0.934639f,0.935184f,0.935726f,0.936266f,0.936803f,0.937339f,0.937872f,0.938404f,0.938932f,0.939459f,0.939984f,0.940506f,0.941026f,0.941544f,0.942060f,0.942573f,0.943084f,0.943593f,0.944100f,0.944605f,0.945107f,0.945607f,0.946105f,0.946601f,0.947094f,0.947586f,0.948075f,0.948561f,0.949046f,0.949528f,0.950008f,0.950486f,0.950962f,0.951435f,0.951906f,0.952375f,0.952842f,0.953306f,0.953768f,0.954228f,0.954686f,0.955141f,0.955594f,0.956045f,0.956494f,0.956940f,0.957385f,0.957826f,0.958266f,0.958703f,0.959139f,0.959572f,0.960002f,0.960431f,0.960857f,0.961280f,0.961702f,0.962121f,0.962538f,0.962953f,0.963366f,0.963776f,0.964184f,0.964590f,0.964993f,0.965394f,0.965793f,0.966190f,0.966584f,0.966976f,0.967366f,0.967754f,0.968139f,0.968522f,0.968903f,0.969281f,0.969657f,0.970031f,0.970403f,0.970772f,0.971139f,0.971504f,0.971866f,0.972227f,0.972584f,0.972940f,0.973293f,0.973644f,0.973993f,0.974339f,0.974684f,0.975025f,0.975365f,0.975702f,0.976037f,0.976370f,0.976700f,0.977028f,0.977354f,0.977677f,0.977998f,0.978317f,0.978634f,0.978948f,0.979260f,0.979570f,0.979877f,0.980182f,0.980485f,0.980785f,0.981083f,0.981379f,0.981673f,0.981964f,0.982253f,0.982539f,0.982824f,0.983105f,0.983385f,0.983662f,0.983937f,0.984210f,0.984480f,0.984748f,0.985014f,0.985278f,0.985539f,0.985798f,0.986054f,0.986308f,0.986560f,0.986809f,0.987057f,0.987301f,0.987544f,0.987784f,0.988022f,0.988258f,0.988491f,0.988722f,0.988950f,0.989177f,0.989400f,0.989622f,0.989841f,0.990058f,0.990273f,0.990485f,0.990695f,0.990903f,0.991108f,0.991311f,0.991511f,0.991710f,0.991906f,0.992099f,0.992291f,0.992480f,0.992666f,0.992850f,0.993032f,0.993212f,0.993389f,0.993564f,0.993737f,0.993907f,0.994075f,0.994240f,0.994404f,0.994565f,0.994723f,0.994879f,0.995033f,0.995185f,0.995334f,0.995481f,0.995625f,0.995767f,0.995907f,0.996045f,0.996180f,0.996313f,0.996443f,0.996571f,0.996697f,0.996820f,0.996941f,0.997060f,0.997176f,0.997290f,0.997402f,0.997511f,0.997618f,0.997723f,0.997825f,0.997925f,0.998023f,0.998118f,0.998211f,0.998302f,0.998390f,0.998476f,0.998559f,0.998640f,0.998719f,0.998795f,0.998870f,0.998941f,0.999011f,0.999078f,0.999142f,0.999205f,0.999265f,0.999322f,0.999378f,0.999431f,0.999481f,0.999529f,0.999575f,0.999619f,0.999660f,0.999699f,0.999735f,0.999769f,0.999801f,0.999831f,0.999858f,0.999882f,0.999905f,0.999925f,0.999942f,0.999958f,0.999971f,0.999981f,0.999989f,0.999995f,0.999999f,
		};


float Cos(Angle pA)
{
	return sincos[(pA>>4)+1024];
}

float Sin(Angle pA)
{
	return sincos[pA>>4];
}

bool RotateShortestDistance(Angle& rAngle,Angle pTarget,Angle pStep)
{
	int angle = rAngle;
	int cw_diff,ccw_diff;
	int target_less_angle;
#include <stdio.h>
#include <math.h>

	if( pTarget > angle )
	{
		cw_diff = pTarget - angle;
		ccw_diff = angle + (DEG_360 - pTarget);
		target_less_angle = 0;
	}
	else
	{
		cw_diff = pTarget + (DEG_360 - angle);
		ccw_diff = angle - pTarget;
		target_less_angle = 1;
	}

	if( cw_diff < ccw_diff )
	{
		angle += pStep;
	}
	else
	{
		angle -= pStep;
	}

	if( target_less_angle )
	{
		if( pTarget > angle )
			angle = pTarget;
	}
	else
	{
		if( pTarget < angle )
			angle = pTarget;
	}

	rAngle = angle;

	return ( pTarget != rAngle );
}

void MakeCosSinTable()
{
	static const double PI = 3.141592654;
	static const double DEGTORAD = (PI / 180.0);
	static const int SINCOS_RANGE = 4096;

	FILE *file = fopen("tables.cpp","wt");

	int tabel_size = SINCOS_RANGE + (SINCOS_RANGE/4);
	fprintf(file,"\n\float sincos[%d] = {\n",tabel_size);
	double angle = 0.0;
	double inc = (360.0 * DEGTORAD) / 4096.0;

	for( int n = 0 ; n < tabel_size ; n++ , angle += inc )
	{
		float v = (float)sin(angle);

		fprintf(file,"%ff,",v);
		if( (n&255) == 255 )
		{
			fprintf(file,"\n");
		}
	}
	fprintf(file,"};\n\n");

	fflush(file);
	fclose(file);
}


} /* namespace BogDog */
